package cn.jksoft.businessclient.api;

import cn.jksoft.businessclient.bean.AreaEntity;
import cn.jksoft.businessclient.bean.BaseEntity;
import cn.jksoft.businessclient.bean.CheckOrderEntity;
import cn.jksoft.businessclient.bean.CustCardEntity;
import cn.jksoft.businessclient.bean.CustomerEntity;
import cn.jksoft.businessclient.bean.FastCreateOrderEntity;
import cn.jksoft.businessclient.bean.LocAreaInfoEntity;
import cn.jksoft.businessclient.bean.LoginEntity;
import cn.jksoft.businessclient.bean.OnlineOrderListEntity;
import cn.jksoft.businessclient.bean.OperatePersonEntity;
import cn.jksoft.businessclient.bean.OrderDetailEntity;
import cn.jksoft.businessclient.bean.OrderDetailStatusEntity;
import cn.jksoft.businessclient.bean.ProductCategoryEntity;
import cn.jksoft.businessclient.bean.ProductInfoEntity;
import cn.jksoft.businessclient.bean.StoreCustEntity;
import cn.jksoft.businessclient.bean.StoreServiceEntity;
import cn.jksoft.businessclient.bean.WorkBenchEntity;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Query;
import rx.Observable;

/**
 * Author:  nick
 * Email:   nickdevp@gmail.com
 * Date:    16/4/7 16:05.
 * Description:
 */

public interface ReceivingApi {

    @GET("geoIntServer/v1/geo/collection")
    Observable<AreaEntity> getAreaResult();

    @GET("mobileBilling/v1/store/qryCityInfoByLatitudeAndLongitude")
    Observable<LocAreaInfoEntity> getLocAreaInfo(@Query("param") String param);

    @GET("StoreAdminUserServer/appGetAdminLogin")
    Observable<LoginEntity> login(@Query("param") String param);

    @GET("mobileBilling/v1/order/qryMobileBillingOrderPage")
    Observable<WorkBenchEntity> getOrderList(@Query("param") String param);

    @FormUrlEncoded
    @POST("mobileBilling/v1/store/createNewStoreCustomer")
    Observable<StoreCustEntity> createNewStoreCustomer(@Field("param") String param);

    @GET("mobileBilling/v1/service/qryStoreServiceList")
    Observable<StoreServiceEntity> getStoreServiceList(@Query("param") String param);

    @GET("mobileBilling/v1/store/qryStoreCustomerList")
    Observable<CustomerEntity> getCustomerList(@Query("param") String param);

    @GET("checkooOrderServer/chekooGetOrderByState")
    Observable<OnlineOrderListEntity> getOnlineOrderList(@Query("param") String param);

    @FormUrlEncoded
    @POST("mobileBilling/v1/order/createMobileBillingOrder")
    Observable<BaseEntity> createMobileBillingOrder(@Field("param") String param);

    @FormUrlEncoded
    @POST("mobileBilling/v1/order/updateMobileBillingOrderServiceStatus")
    Observable<BaseEntity> completeOrder(@Field("param") String param);

    @PUT("StoreFlowServer/appFinishProcessTask")
    Observable<BaseEntity> operOrder(@Query("param") String param);

    @GET("chekooVipServer/findConstructionPersonnelList")
    Observable<OperatePersonEntity> qryStrucPersonList(@Query("param") String param);

    @GET("mobileBilling/v1/prod/qryStoreProdCataList")
    Observable<ProductCategoryEntity> getProductCategory(@Query("param") String param);

    @GET("mobileBilling/v1/prod/qryStoreProdListByProdCataId")
    Observable<ProductInfoEntity> getProductList(@Query("param") String param);

    @GET("mobileBilling/v1/order/qryMobileBillingOrderDetails")
    Observable<OrderDetailEntity> getOrderDetailProductList(@Query("param") String param);

    @GET("mobileBilling/v1/order/qryCustomerReceiptsMessList")
    Observable<OrderDetailStatusEntity> getOrderDetailStatusList(@Query("param") String param);

    @GET("mobileBilling/v1/order/isWhetherThereCustomerServiceStatusOrder")
    Observable<CheckOrderEntity> checkOrderExist(@Query("param") String param);

    @FormUrlEncoded
    @POST("mobileBilling/v1/order/additionalOrderItmes")
    Observable<BaseEntity> addOrder(@Field("param") String param);

    @GET("mobileBilling/v1/order/orderSettlement")
    Observable<BaseEntity> settleMentOrder(@Query("param") String param);

    @GET("mobileBilling/v1/member/qryStoreCustomerCardList")
    Observable<CustCardEntity> qryCustomerCardList(@Query("param") String param);

    @FormUrlEncoded
    @POST("mobileBilling/v1/order/createFastBillingOrder")
    Observable<FastCreateOrderEntity> fastCreateOrder(@Field("param") String param);


}
